/*###################################################################*
#
# MP (Mitchell Pell) Base - CrossPlatform Base Utilities.
# Copyright (C) 2014  Mitchell Pell
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
####################################################################*/
#ifndef BASE_ERROR_H
#define BASE_ERROR_H

#include "Event.h"

namespace mp_base{
	namespace interfaces{
		/*!----------------------------------------------------------------
		*	@class		Error
		*	@brief		This is an Event that represents an Error.
		*
		*	@author		Mitchell Pell
		*	@date		11/23/2013
		*	@version	1.0
		*
		*	@revisions	Revision History:
		*
		*					- Version 1.0 11/23/2013
		*						-# Initial Make
		*
		-----------------------------------------------------------------*/
		class Error : public Event
		{
		public:
			/*! Default Constructor */
			Error() :Event(){}
			/*! Overloaded Constructor */
			Error(const string error) :Event() {m_error = error;}
			/*! Overloaded Constructor */
			Error(const char* error) :Event() {m_error = error;}
			/*! Copy Constructor */
			Error(const Error& error) :Event(error)
				{m_error = error.m_error;}

			const string GetError() const { return m_error; }
			void SetError(string error){ m_error = error; }
			virtual const string GetMessage() const { return m_error; }

		protected:
			string m_error;
		};
	}
}

#endif